< d99d0e00-2087-4db3-886d-1ce2a4eccd3

非推奨の API は v2.5 以降削除されました

まとめ

Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 2.5 安定版リリースは削除されました。

影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。

変更点

このセクションでは、影響を受けるクラスごとに非推奨をリストします。


Flutter Fixによるサポート: はい

autovalidatev1.19 で非推奨になりました。

使用autovalidateModeその代わり。 どこautovalidatetrue だったので、次のように置き換えますAutovalidateMode.always。 どこautovalidateは false でした。次のように置き換えますAutovalidateMode.disabled。 この変更により、元のバイナリを超えてより多くの動作を指定できるようになります。 選択、追加AutovalidateMode.onUserInteraction追加オプションとして。

次のクラスはすべて、API に同じ変更があります。

  • Form
  • FormField
  • DropdownButtonFormField
  • TextFormField

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

const Form form = Form(autovalidate: true);
const Form form = Form(autovalidate: false);
final autoMode = form.autovalidate;

const FormField formField = FormField(autovalidate: true);
const FormField formField = FormField(autovalidate: false);
final autoMode = formField.autovalidate;

const TextFormField textFormField = TextFormField(autovalidate: true);
const TextFormField textFormField = TextFormField(autovalidate: false);

const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidate: true);
const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidate: false);

移行後のコード:

const Form form = Form(autovalidateMode: AutovalidateMode.always);
const Form form = Form(autovalidateMode: AutovalidateMode.disabled);
final autoMode = form.autovalidateMode;

const FormField formField = FormField(autovalidateMode: AutovalidateMode.always);
const FormField formField = FormField(autovalidateMode: AutovalidateMode.disabled);
final autoMode = formField.autovalidateMode;

const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.always);
const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.disabled);

const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.always);
const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.disabled);

参考文献

API ドキュメント:

  • Form
  • FormField
  • TextFormField
  • DropdownButtonFormField
  • AutovalidateMode

関連する問題:

  • 問題 56363
  • 問題 18885
  • 問題 15404
  • 問題 36154
  • 問題 48876

関連する PR:

  • で廃止されました#59766
  • に削除されました#90292

FloatingHeaderSnapConfiguration.vsync

Flutter Fix によるサポート: いいえ

TickerProvider vsyncの財産FloatingHeaderSnapConfigurationだった v1.19 で非推奨になりました。

vsyncアニメーションの場合は、代わりに次を使用して指定する必要がありますSliverPersistentHeaderDelegate.vsync

移行ガイド

移行前のコード:

class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
  FloatingHeaderSnapConfiguration? get snapConfiguration => FloatingHeaderSnapConfiguration(vsync: myTickerProvider);
}

移行後のコード:

class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
  FloatingHeaderSnapConfiguration? get snapConfiguration => FloatingHeaderSnapConfiguration();
  TickerProvider? get vsync => myTickerProvider;
}

参考文献

設計書:

  • SliverPersistentHeader の showOnScreen 動作を制御する

API ドキュメント:

  • FloatingHeaderSnapConfiguration
  • SliverPersistentHeaderDelegate
  • TickerProvider

関連する問題:

  • 問題 25507

関連する PR:

  • で廃止されました#56413
  • に削除されました#90293

AndroidViewControllerとサブクラスid

Flutter Fixによるサポート: はい

idAndroidViewControllerTextureAndroidViewController、 とSurfaceAndroidViewController、v1.20 で非推奨になりました。

これらすべてのユースケースについて、viewId代わりに使用する必要があります。

移行ガイド

移行前のコード:

final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
  viewId: 10,
  viewType: 'FixTester',
  layoutDirection: TextDirection.ltr,
);
int viewId = surfaceController.id;
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
  error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
  error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
  viewId: 10,
  viewType: 'FixTester',
  layoutDirection: TextDirection.ltr,
);
viewId = textureController.id;

移行後のコード:

final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
  viewId: 10,
  viewType: 'FixTester',
  layoutDirection: TextDirection.ltr,
);
int viewId = surfaceController.viewId;
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
  error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
  error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
  viewId: 10,
  viewType: 'FixTester',
  layoutDirection: TextDirection.ltr,
);
viewId = textureController.viewId;

参考文献

設計書:

  • flutterハイブリッド構成

API ドキュメント:

  • AndroidViewController
  • TextureAndroidViewController
  • SurfaceAndroidViewController

関連する問題:

  • 問題 55218

関連する PR:

  • で廃止されました#60320
  • に削除されました#90294

BlacklistingTextInputFormatter&WhitelistingTextInputFormatter

Flutter Fix によるサポート: いいえ

クラス全体BlacklistingTextInputFormatterWhitelistingTextInoutFormatterv1.20 で非推奨になりました。

それらの機能は単一のクラスに書き直されました。FilteringTextInputFormatter

移行ガイド

移行前のコード:

formatter = BlacklistingTextInputFormatter(pattern, replacementString: 'replacedPattern');
formatter = BlacklistingTextInputFormatter.singleLineFormatter;
pattern = formatter.blacklistedPattern;
formatter = WhitelistingTextInputFormatter(pattern);
formatter = WhitelistingTextInputFormatter.digitsOnly;
pattern = formatter.whitelistedPattern;

移行後のコード:

formatter = FilteringTextInputFormatter.deny(pattern, replacementString: 'replacedPattern');
formatter = FilteringTextInputFormatter.singleLineFormatter;
pattern = formatter.filterPattern;
formatter = FilteringTextInputFormatter.allow(pattern);
formatter = FilteringTextInputFormatter.digitsOnly;
pattern = formatter.filterPattern;

参考文献

API ドキュメント:

  • FilteringTextInputFormatter

関連する PR:

  • で廃止されました#59120
  • に削除されました#90296

BottomNavigationBarItem.title

Flutter Fixによるサポート: はい

titleBottomNavigationBarItemv1.19 で非推奨になりました。 のlabel代わりにプロパティを使用する必要があります。この移行により、より良いサービスが可能になります テキストのスケーリングと組み込みの機能TooltipのためのBottomNavigationBarItemの文脈でBottomNavigationBar

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem(title: myTitle);
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem();
bottomNavigationBarItem.title;

移行後のコード:

const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem(label: myTitle);
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem();
bottomNavigationBarItem.label;

参考文献

設計書:

API ドキュメント:

  • BottomNavigationBarItem
  • BottomNavigationBar
  • Tooltip

関連する PR:

  • で廃止されました#59127
  • に削除されました#90295

packageRootdart:coredart:isolate、 とpackage:platform

次の API が削除されました。

  • Platform.packageRootdart:core
  • Isolate.packageRootdart:isolate
  • Platform.packageRootpackage:platform

これらの API は非推奨としてマークされましたDart 2.0では、しませんでした どの Dart 2.x リリースでも正しく動作します。

移行ガイド

これらはpackageRootAPI は新しいセットに置き換えられました。packageConfigAPI、 どちらに移行する必要があります。

  • Platform.packageConfigdart:core
  • Isolate.packageConfigdart:isolate
  • Platform.packageConfigpackage:platform

を使用している場合は、package:platformパッケージの有無に関係なく、 あなたはを使用していますpackageRootAPI かどうかに関係なく、そのパッケージの古いバージョンは Dart 2.16 以降とは、現在削除された に依存しているため互換性がありません。packageRootAPI。を実行しようとすると、次のようなエラーが表示される場合があります。 アプリ:

../../.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/
  lib/src/interface/local_platform.dart:46:19:
  Error: Member not found: 'packageRoot'.
      io.Platform.packageRoot; // ignore: deprecated_member_use
                  ^^^^^^^^^^^

これを解決するには、バージョンをアップグレードしてください3.1.0またはそれ以降package:platformに の制約をアップグレードするpubspec.yamlファイル:

dependencies:
  platform: ^3.1.0

参考文献

関連する PR:

  • Dart ライブラリから削除されました#47769
  • から削除されましたpackage:platformのPR #38
  • 使用する Flutter を更新しましたpackage:platform3.1.0インチPR #94603

タイムライン

安定版リリース: 2.10